//axios的三层封装，第一次对axios进行增强
// 引入axios
import axios from "axios";
import { Message } from 'element-ui'; //引入全局的Message
import local from '@/utils/local.js'
import router from '@/router/index.js';
// 设置公共服务器地址
axios.defaults.baseURL = "http://api.wm.v6g.cn";

// 添加请求拦截器
axios.interceptors.request.use(
    function (config) {
        // 在发送请求之前做些什么
        let token =  local.get("token");
        if (token) {
            config.headers.Authorization = "Bearer " + token;
        }
        return config;
    },
    function (error) {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 添加响应拦截器
axios.interceptors.response.use(
    function (res) {
        if (typeof res.data.code === "number") {
            if (res.data.code === 0 ||res.data.code===200) {
                Message.success(res.data.msg);
            } else {
                Message.error(res.data.msg);
            }
            
        }
        return res;
    },
    function (err) {
        Message.error("请求失败");
        if(err.response.status===401){
            Message.error(err.response.data.msg)
            router.push('/login'); //从引入的路由模块中调用跳转方法
        }
        return Promise.reject(err);
    }
);

//暴露增强后的axios
export default axios;
